/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * 
 * 
 */

        var directionsService = new google.maps.DirectionsService();
        var id;
        var limite=0,pos=0,intervalID,cantidadAsignar,idIncidente;
        var Routes,IDs,Distancias;
        
           function get_id()
           {
                return document.getElementById('usuario').value;
           }


            function CalcRoutes(id_incidente,cuantos)
            {
                

                //obtienes el id del usuario para saber que XML usar
                id=get_id();
                cantidadAsignar=cuantos;
                idIncidente=id_incidente;
                Routes=new Array();
                limite=0,pos=0;
                IDs=new Array();
                Distancias=new Array();
                intervalID=window.setInterval(OrderAndAssign,100);
                //con esta funcion lees el XML
                downloadUrl("../Coordenadas/Coordenadas_general_user_"+id+".xml", function(data) {
               
               //Obtienes los tags de incidentes
               var incidentes=data.documentElement.getElementsByTagName("incidente");
               //regresamos las coordenadas del evento que nos interesa en un arreglo
               var coordenadas_incidente=coordenadas_incidente=get_coordenada_incidente(incidentes,id_incidente);
               //asigmanos los valores de ese arreglo a una variable de latitud longitud de google maps
                var latlng_incidente = new google.maps.LatLng(parseFloat(coordenadas_incidente[0]),
                                                parseFloat(coordenadas_incidente[1]));


               
                var radio_patrullas = data.documentElement.getElementsByTagName("radio_patrulla");
                for (var i = 0; i < radio_patrullas.length; i++) 
                {
                    var latlng_unidad = new google.maps.LatLng(parseFloat(radio_patrullas[i].getAttribute("latitud")),
                                                parseFloat(radio_patrullas[i].getAttribute("longitud")));
                    var id_unidad=radio_patrullas[i].getAttribute("id");                             
                    var request = {
                    origin: latlng_unidad,
                    destination: latlng_incidente,
                    travelMode: google.maps.DirectionsTravelMode.DRIVING
                    };
                    // Route the directions and pass the response to a
                    // function to create markers for each step.
                    limite=limite+1;
                    IDs[i]=id_unidad;
                    
                    directionsService.route(request, function(response, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                       Distancias[pos]=response.routes[0].legs[0].distance.value;
                       pos=pos+1;
                    }
                    });
                }
                });
            }
            
            function get_coordenada_incidente(incidentes,id_incidente)
            {
                var coordenadas=new Array();
                for (var i = 0; i < incidentes.length; i++) 
                {
                    if(incidentes[i].getAttribute("id")==id_incidente)
                     {
                        coordenadas=[incidentes[i].getAttribute("latitud"),incidentes[i].getAttribute("longitud")];
                        break;
                     }
                }

                return coordenadas;
            }
          
            function OrderAndAssign()
            {
                if(pos==IDs.length && limite>0)
                {
                    window.clearInterval(intervalID);
                    for(var cont=0;cont< Distancias.length;cont++)
                        Routes[cont]={id_incident:IDs[cont],distancia:Distancias[cont]};
                    
                    Routes.sort(function(a, b){
                        return a.distancia-b.distancia
                    })
                    
                    for(var i=0;i<cantidadAsignar;i++)
                    {
                        //alert(Routes[i].id_incident);
                        CargarPolicia1(idIncidente,Routes[i].id_incident);
                    }
                    
                }
            }
           

